import { useMemberStore } from '@/stores'

// 基础路径
const baseURL = 'http://localhost:48080'

// 添加拦截器
const httpInterceptor = {
  /**
   * 在请求发送之前调用，用于拼接请求的 URL
   * @param options - 请求的配置选项
   */
  invoke(options: UniApp.RequestOptions) {
    // 非http开头需要拼接地址
    if (!options.url.startsWith('http')) {
      options.url = baseURL + options.url
    }
    // 设置超时时间为10秒
    options.timeout = 10000
    // 添加小程序请求头标识
    options.header = {
      // 保留其他请求头信息
      ...options.header,
      // 小程序请求头标识
      'source-client': 'miniapp',
    }
    // 添加token
    const memberStore = useMemberStore()
    const token = memberStore.profile?.token
    if (token) {
      options.header.Authentication = token
    }
  },
}
// 拦截resquest和uploadFile请求
uni.addInterceptor('request', httpInterceptor)
uni.addInterceptor('uploadFile', httpInterceptor)
